import eventBus from '@/utils/eventBus.js'

// 默认头像
export const defaultAvatar = "https://qn.mtj.cdydsy.com/user_client/new-version/default-avatar.png"

// 初始化辅助函数
export function waitForAppLaunch() {
	return uni.$onLaunched || Promise.resolve(true);
}

export function gotoHome(options = {}) {
	const { title = "提示", content = "页面有误将返回首页" } = options;
	uni.showModal({
		title,
		content,
		showCancel: false,
		success(res) {
			if (res.confirm) {
				uni.reLaunch({
					url: "/pages/index/index"
				})
			}
		}
	})
}

/**
 * @desc 交互模态框
 * @param param  参数名
 */
export function showModal(content, showCancel = false, title = "提示", confirmText = "确认", cancelText =
	"取消") {
	return new Promise((resolve, reject) => {
		uni.showModal({
			title: title,
			content: content,
			showCancel: showCancel,
			confirmColor: '#000000',
			confirmText: confirmText,
			cancelText: cancelText,
			success: (res) => {
				resolve(res);
			},
			fail: (err) => {
				reject(err);
			},
		});
	});
};


/**
 * @desc 交互模态框
 * @param param  参数名
 */
export function showToast(title, options = {}) {
	const defaultOptions = {
		title,
		icon: 'none',
		duration: 2000,
		mask: true
	};
	// 合并默认选项和传入的选项
	const finalOptions = {
		...defaultOptions,
		...options
	};
	// 调用 uni.showToast 显示提示信息
	uni.showToast(finalOptions);
}

// 预览图片
export function previewImage(imageUrls, currentIndex = 0) {
	uni.previewImage({
		urls: imageUrls,
		current: currentIndex, // 确保 current 是图片的实际链接
		success: () => {
			console.log('图片预览成功');
		},
		fail: (err) => {
			console.error('图片预览失败', err);
		}
	});
}

// 获取页面需要登录的全局事件
export function getPageEmit(url) {
	const obj = {
		"pages/index/index": 'loginSuccess',
		"pages/shopping-cart/index": 'getCartList',
		"subPackages/address/index": 'getAddressList'
	}
	// 触发每个页面对应的全局事件
	eventBus.value.emit(obj[url])
}

/**
 * @desc 复制
 * @param { string } value - 复制的内容
 */
export function copy(value) {
	// 确保value是字符串类型
	value = String(value);
	uni.setClipboardData({
		data: value,
		success: () => {
			showToast('已复制到粘贴面板');
		},
		fail: (err) => {
			showToast('复制失败，请重试');
		}
	});
}

/**
 * @desc 图片拼接域名
 * @param {string} path 图片路径
 * @returns {string} 完整的图片 URL
 */
export function getImageUrl(path) {
	const imageUrlPrefix = 'https://qn.mtj.cdydsy.com';
	return imageUrlPrefix + path;
}

/**
 * 分享到微信朋友
 * @param {Object} options - 分享选项
 * @param {string} options.title - 分享标题
 * @param {string} [options.summary=''] - 分享摘要
 * @param {string} [options.href=''] - 分享链接
 * @param {string} options.imageUrl - 分享图片URL
 * @returns {Promise} 分享结果Promise
 */
export function shareToFriend({ title, summary = '', href = '', imageUrl }) {
    return uni.share({
        provider: 'weixin',
        scene: 'WXSceneSession',
        type: 0,
        title,
        summary,
        href,
        imageUrl
    }).catch(err => {
        console.error('微信朋友分享失败:', err);
        throw err;
    });
}
